package com.ht.shortlink.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ht.shortlink.project.dto.req.ShortLinkStatsAccessRecordsGroupReqDTO;
import com.ht.shortlink.project.dto.req.ShortLinkStatsAccessRecordsReqDTO;
import com.ht.shortlink.project.dto.req.ShortLinkStatsGroupReqDTO;
import com.ht.shortlink.project.dto.req.ShortLinkStatsReqDTO;
import com.ht.shortlink.project.dto.resp.ShortLinkStatsAccessRecordsGroupRespDTO;
import com.ht.shortlink.project.dto.resp.ShortLinkStatsAccessRecordsRespDTO;
import com.ht.shortlink.project.dto.resp.ShortLinkStatsRespDTO;

public interface IShortLinkStatsService  {

    /**
     *  单个短链接监控数据详情
     * @param requestParam 单个短链接监控数据请求参数
     * @return 单个短链接监控数据响应参数
     */
    ShortLinkStatsRespDTO oneShortLinkStats(ShortLinkStatsReqDTO requestParam);

    /**
     *  分组短链接监控数据详情
     * @param requestParam 分组短链接监控数据请求参数
     * @return 分组短链接监控数据响应参数
     */
    ShortLinkStatsRespDTO groupShortLinkStats(ShortLinkStatsGroupReqDTO requestParam);

    /**
     *  获取短链接访问记录数据
     * @param requestParam 单日短链接监控数据请求参数
     * @return 单日短链接监控数据响应参数
     */
    IPage<ShortLinkStatsAccessRecordsRespDTO> queryLinkStatsAccessRecords(ShortLinkStatsAccessRecordsReqDTO requestParam);

    /**
     *  获取分组内短链接访问记录数据
     * @param requestParam 分组内短链接监控数据请求参数
     * @return 分组内短链接监控数据响应参数
     */
    IPage<ShortLinkStatsAccessRecordsGroupRespDTO> queryGroupStatsAccessRecords(ShortLinkStatsAccessRecordsGroupReqDTO requestParam);
}
